//
//  Hero.h
//  飞机大战
//
//  Created by sfk-ios on 2017/12/1.
//  Copyright © 2017年 sfk-JasonSu. All rights reserved.
//
//  英雄战机模型
//

#import <Foundation/Foundation.h>

@interface Hero : NSObject

#pragma mark - 工厂方法
// 根据英雄的size和gameArea计算英雄应该出现的位置
+ (id)heroWithSize:(CGSize)size gameArea:(CGRect)gameArea;

// 中心点位置
@property (assign, nonatomic) CGPoint positon;
// 飞机的大小
@property (assign, nonatomic) CGSize size;

// 英雄碰撞检测frame
@property (assign, nonatomic, readonly) CGRect collisionFrame;

// 炸弹的数量
@property (assign, nonatomic) NSInteger bombCount;
// 子弹是否增强
@property (assign, nonatomic) BOOL isEnhancedBullet;
// 子弹增强时间
@property (assign, nonatomic) NSInteger enhancedTime;

#pragma mark 子弹辅助属性
// 普通子弹尺寸
@property (assign, nonatomic) CGSize bullteNormalSize;
// 加强子弹尺寸
@property (assign, nonatomic) CGSize bullteEnhancedSize;
// 发射子弹的集合
/*
 集合相对于数组，是无序的，所以set的维护开销要比array小，通常在处理无序对象时使用
 
 使用集合时，最常用的做法就是遍历集合中所有的元素
 */
@property (strong, nonatomic) NSMutableSet *bullteSet;

#pragma mark - 成员方法
#pragma mark 发射子弹
- (void)fire;

@end
